//
//  DLoginManager.m
//  DFrame
//
//  Created by FTY on 2016/12/26.
//  Copyright © 2016年 DaiSuke. All rights reserved.
//

#import "DLoginManager.h"
static NSInteger iErrorCount = 0;
@implementation DLoginManager

/**
 *  用户登陆
 
 *  userNo       用户账号
 *  password     用户密码
 
 成功回调
 *  callbackMethor <- requestServiceSucceedByUserInfo  -> 回调方法
 
 错误处理
 *  callbackMethor <- requestServiceSucceedBackErrorType:ErrorTypeForAlertResetPassword  -> 回调方法
 
 *  callbackMethor <- requestServiceSucceedBackErrorType: result:model  -> 回调方法
 ErrorTypeForPushToChangeDeviceView 跳转至验证设备页面
 ErrorTypeForPushToCheckUserInfoView 跳转至确认个人资料页面
 *  callbackModel  <- TGUserInfoConfirmModel -> 回调Model
 */
- (void)loginByParamModel:(id<DLoginParamProtocol>)paramModel{
    [self addLoadingView];
    @weakify(self)
    [self.service loginByParamModel:paramModel onSucceeded:^{
        iErrorCount = 0;
        //登录成功之后跳转到主页面
        [self requestServiceSucceedByUserInfo];
    } onError:^(DError *error) {
        @strongify(self)
        int errorCode = [DErrorRespone getErrorCodeByError:error];
        switch (errorCode) {
            case 10002:{
                if(iErrorCount >= 2){
                    [self requestServiceSucceedBackErrorType:ErrorTypeForAlertResetPassword];
                    iErrorCount = 0;
                }
                else{
                    iErrorCount++;
                    [self proccessNetwordError:error];
                }
                break;
            }
            default:{
                [self proccessNetwordError:error];
            }
                break;
        }
    }];
}

@end
